home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1998 January: Mac OS SDK / Dev.CD Jan 98 SDK1.toast / Development Kits (Disc 1) / Interfaces&Libraries / Universal / Interfaces / AIncludes / OCEMail.a < prev    next >
Encoding:
Text File  |  1997-08-12  |  63.3 KB  |  1,824 lines  |  [TEXT/MPS ]

  1. ;
  2. ;    File:        OCEMail.a
  3. ;
  4. ;    Contains:    Apple Open Collaboration Environment OCEMail Interfaces.
  5. ;
  6. ;    Version:    Technology:    AOCE Toolbox 1.02
  7. ;                Release:    Universal Interfaces 3.0.1
  8. ;
  9. ;    Copyright:    © 1994-1997 by Apple Computer, Inc., all rights reserved.
  10. ;
  11. ;    Bugs?:        Please include the the file and version information (from above) with
  12. ;                the problem description.  Developers belonging to one of the Apple
  13. ;                developer programs can submit bug reports to:
  14. ;
  15. ;                    devsupport@apple.com
  16. ;
  17. ;
  18.     IF &TYPE('__OCEMAIL__') = 'UNDEFINED' THEN
  19. __OCEMAIL__ SET 1
  20.  
  21.     IF &TYPE('__TYPES__') = 'UNDEFINED' THEN
  22.     include 'Types.a'
  23.     ENDIF
  24.     IF &TYPE('__FILES__') = 'UNDEFINED' THEN
  25.     include 'Files.a'
  26.     ENDIF
  27.     IF &TYPE('__TEXTEDIT__') = 'UNDEFINED' THEN
  28.     include 'TextEdit.a'
  29.     ENDIF
  30.  
  31.     IF &TYPE('__DIGITALSIGNATURE__') = 'UNDEFINED' THEN
  32.     include 'DigitalSignature.a'
  33.     ENDIF
  34.     IF &TYPE('__OCE__') = 'UNDEFINED' THEN
  35.     include 'OCE.a'
  36.     ENDIF
  37.     IF &TYPE('__OCEAUTHDIR__') = 'UNDEFINED' THEN
  38.     include 'OCEAuthDir.a'
  39.     ENDIF
  40.     IF &TYPE('__OCEMESSAGING__') = 'UNDEFINED' THEN
  41.     include 'OCEMessaging.a'
  42.     ENDIF
  43.  
  44. ; *************************************************************************************
  45. ;  Common Definitions 
  46. ; *************************************************************************************
  47.  
  48. ;  reference to a new or open letter or message 
  49. ; typedef long                             MailMsgRef
  50.  
  51. ;  reference to an open msam queue 
  52. ; typedef long                             MSAMQueueRef
  53.  
  54. ;  identifies slots managed by a PMSAM 
  55. ; typedef unsigned short                 MSAMSlotID
  56.  
  57. ;  reference to an active mailbox 
  58. ; typedef long                             MailboxRef
  59.  
  60. ;  identifies slots within a mailbox 
  61. ; typedef unsigned short                 MailSlotID
  62.  
  63. ;  identifies a letter in a mailbox 
  64. MailSeqNum                RECORD 0
  65. slotID                     ds.w    1                ; offset: $0 (0)
  66. seqNum                     ds.l    1                ; offset: $2 (2)
  67. sizeof                     EQU *                    ; size:   $6 (6)
  68.                         ENDR
  69. ;  A MailBuffer is used to describe a buffer used for an IO operation.
  70. ;The location of the buffer is pointed to by 'buffer'. 
  71. ;When reading, the size of the buffer is 'bufferSize' 
  72. ;and the size of data actually read is 'dataSize'.
  73. ;When writing, the size of data to be written is 'bufferSize' 
  74. ;and the size of data actually written is 'dataSize'.
  75. ;
  76.  
  77. MailBuffer                RECORD 0
  78. bufferSize                 ds.l    1                ; offset: $0 (0)
  79. buffer                     ds.l    1                ; offset: $4 (4)
  80. dataSize                 ds.l    1                ; offset: $8 (8)
  81. sizeof                     EQU *                    ; size:   $C (12)
  82.                         ENDR
  83. ;  A MailReply is used to describe a commonly used reply buffer format.
  84. ;It contains a count of tuples followed by an array of tuples.
  85. ;The format of the tuple itself depends on each particular call.
  86. ;
  87.  
  88. MailReply                RECORD 0
  89. tupleCount                 ds.w    1                ; offset: $0 (0)
  90. ;  tuple[tupleCount] 
  91. sizeof                     EQU *                    ; size:   $2 (2)
  92.                         ENDR
  93. ;  Shared Memory Communication Area used when Mail Manager sends 
  94. ;High Level Events to a PMSAM. 
  95. ;
  96.  
  97. SMCA                    RECORD 0
  98. smcaLength                 ds.w    1                ; offset: $0 (0)        ;  includes size of smcaLength field 
  99. result                     ds.w    1                ; offset: $2 (2)
  100. userBytes                 ds.l    1                ; offset: $4 (4)
  101. slotCID                     ds        CreationID        ; offset: $8 (8)        ;  for create/modify/delete slot calls 
  102.                          ORG 8
  103. msgHint                     ds.l    1                ; offset: $8 (8)        ;  for kMailEPPCMsgOpened 
  104.                          ORG 16
  105. sizeof                     EQU *                    ; size:   $10 (16)
  106.                         ENDR
  107. ; *************************************************************************************
  108. ;  Value of creator and types fields for messages and blocks defined by MailManager 
  109.  
  110. kMailAppleMailCreator            EQU        'apml'                ; message and letter block creator 
  111. kMailLtrMsgType                    EQU        'lttr'                ; message type of letters, reports 
  112. kMailLtrHdrType                    EQU        'lthd'                ; contains letter header 
  113. kMailContentType                EQU        'body'                ; contains content of letter 
  114. kMailEnclosureListType            EQU        'elst'                ; contains list of enclosures 
  115. kMailEnclosureDesktopType        EQU        'edsk'                ; contains desktop mgr info for enclosures 
  116. kMailEnclosureFileType            EQU        'asgl'                ; contains a file enclosure, format is defined by AppleSingle 
  117. kMailImageBodyType                EQU        'imag'                ; contains image of letter 
  118. kMailMSAMType                    EQU        'gwyi'                ; contains msam specific information 
  119. kMailTunnelLtrType                EQU        'tunl'                ; used to read a tunnelled message 
  120. kMailHopInfoType                EQU        'hopi'                ; used to read hopInfo for a tunnelled message 
  121. kMailReportType                    EQU        'rpti'                ; contains report info 
  122. kMailFamily                        EQU        'mail'                ; Defines family of "mail" msgs: content, header, etc 
  123. kMailFamilyFile                    EQU        'file'                ; Defines family of "direct display" msgs 
  124. ;     
  125. ;kMailImageBodyType:
  126. ;    format is struct TPfPgDir - in Printing.h
  127. ;    *    struct TPfPgDir {
  128. ;    *        short    pageCount;        - number of pages in the image.
  129. ;    *        long    iPgPos[129];    - iPgPos[n] is the offset from the start of the block
  130. ;    *                                - to image of page n.
  131. ;    *                                - iPgPos[n+1] - iPgPos[n] is the length of page n.
  132. ;
  133. ;kMailReportType:
  134. ;Reports have the isReport bit set in MailIndications and contain a block of type kMailReport.
  135. ;This block has a header, IPMReportBlockHeader,
  136. ;followed by an array of elements, each of type IPMRecipientReport
  137. ;
  138. ;Various families used by mail or related msgs
  139. ;
  140.  
  141.  
  142.  
  143. ; *************************************************************************************
  144. ; typedef unsigned short                 MailAttributeID
  145.  
  146. ;  Values of MailAttributeID 
  147. ;  Message store attributes - stored in the catalog 
  148. ;  Will always be present in a letter and have fixed sizes 
  149.  
  150. kMailLetterFlagsBit                EQU        1                    ; MailLetterFlags 
  151.                                                             ; Letter attributes - stored in the letter will always be present in a letter and have fixed sizes 
  152. kMailIndicationsBit                EQU        3                    ; MailIndications 
  153. kMailMsgTypeBit                    EQU        4                    ; OCECreatorType 
  154. kMailLetterIDBit                EQU        5                    ; MailLetterID 
  155. kMailSendTimeStampBit            EQU        6                    ; MailTime 
  156. kMailNestingLevelBit            EQU        7                    ; MailNestingLevel 
  157. kMailMsgFamilyBit                EQU        8                    ; OSType 
  158.                                                             ; Letter attributes - stored in the letter may be present in a letter and have fixed sizes 
  159. kMailReplyIDBit                    EQU        9                    ; MailLetterID 
  160. kMailConversationIDBit            EQU        10                    ; MailLetterID 
  161.                                                             ; Letter attributes - stored in the letter may be present in a letter and have variable length sizes 
  162. kMailSubjectBit                    EQU        11                    ; RString 
  163. kMailFromBit                    EQU        12                    ; MailRecipient 
  164. kMailToBit                        EQU        13                    ; MailRecipient 
  165. kMailCcBit                        EQU        14                    ; MailRecipient 
  166. kMailBccBit                        EQU        15                    ; MailRecipient 
  167. ; typedef unsigned long                 MailAttributeMask
  168.  
  169. ;  Values of MailAttributeMask 
  170.  
  171. kMailLetterFlagsMask            EQU        $00000001
  172. kMailIndicationsMask            EQU        $00000004
  173. kMailMsgTypeMask                EQU        $00000008
  174. kMailLetterIDMask                EQU        $00000010
  175. kMailSendTimeStampMask            EQU        $00000020
  176. kMailNestingLevelMask            EQU        $00000040
  177. kMailMsgFamilyMask                EQU        $00000080
  178. kMailReplyIDMask                EQU        $00000100
  179. kMailConversationIDMask            EQU        $00000200
  180. kMailSubjectMask                EQU        $00000400
  181. kMailFromMask                    EQU        $00000800
  182. kMailToMask                        EQU        $00001000
  183. kMailCcMask                        EQU        $00002000
  184. kMailBccMask                    EQU        $00004000
  185. ; typedef unsigned long                 MailAttributeBitmap
  186.  
  187. ; *************************************************************************************
  188. ; typedef unsigned short                 MailLetterSystemFlags
  189.  
  190. ;  Values of MailLetterSystemFlags 
  191. ;  letter is available locally (either by nature or via cache) 
  192.  
  193. kMailIsLocalBit                    EQU        2
  194.  
  195. kMailIsLocalMask                EQU        $00000004
  196. ; typedef unsigned short                 MailLetterUserFlags
  197.  
  198.  
  199. kMailReadBit                    EQU        0                    ; this letter has been opened 
  200. kMailDontArchiveBit                EQU        1                    ; this letter is not to be archived either because it has already been archived or it should not be archived. 
  201. kMailInTrashBit                    EQU        2                    ; this letter is in trash 
  202. ;  Values of MailLetterUserFlags 
  203.  
  204. kMailReadMask                    EQU        $00000001
  205. kMailDontArchiveMask            EQU        $00000002
  206. kMailInTrashMask                EQU        $00000004
  207. MailLetterFlags            RECORD 0
  208. sysFlags                 ds.w    1                ; offset: $0 (0)
  209. userFlags                 ds.w    1                ; offset: $2 (2)
  210. sizeof                     EQU *                    ; size:   $4 (4)
  211.                         ENDR
  212. MailMaskedLetterFlags    RECORD 0
  213. flagMask                 ds        MailLetterFlags ; offset: $0 (0)        ;  flags that are to be set 
  214. flagValues                 ds        MailLetterFlags ; offset: $4 (4)        ;  and their values 
  215. sizeof                     EQU *                    ; size:   $8 (8)
  216.                         ENDR
  217.  
  218. kMailOriginalInReportBit        EQU        1
  219. kMailNonReceiptReportsBit        EQU        3
  220. kMailReceiptReportsBit            EQU        4
  221. kMailForwardedBit                EQU        5
  222. kMailPriorityBit                EQU        6
  223. kMailIsReportWithOriginalBit    EQU        8
  224. kMailIsReportBit                EQU        9
  225. kMailHasContentBit                EQU        10
  226. kMailHasSignatureBit            EQU        11
  227. kMailAuthenticatedBit            EQU        12
  228. kMailSentBit                    EQU        13
  229. kMailNativeContentBit            EQU        14
  230. kMailImageContentBit            EQU        15
  231. kMailStandardContentBit            EQU        16
  232. ;  Values of MailIndications 
  233.  
  234. kMailStandardContentMask        EQU        $00008000
  235. kMailImageContentMask            EQU        $00004000
  236. kMailNativeContentMask            EQU        $00002000
  237. kMailSentMask                    EQU        $00001000
  238. kMailAuthenticatedMask            EQU        $00000800
  239. kMailHasSignatureMask            EQU        $00000400
  240. kMailHasContentMask                EQU        $00000200
  241. kMailIsReportMask                EQU        $00000100
  242. kMailIsReportWithOriginalMask    EQU        $00000080
  243. kMailPriorityMask                EQU        $00000060
  244. kMailForwardedMask                EQU        $00000010
  245. kMailReceiptReportsMask            EQU        $00000008
  246. kMailNonReceiptReportsMask        EQU        $00000004
  247. kMailOriginalInReportMask        EQU        $00000003
  248. ; typedef unsigned long                 MailIndications
  249.  
  250. ;  values of the field originalInReport in MailIndications 
  251.  
  252. kMailNoOriginal                    EQU        0                    ; do not enclose original in reports 
  253. kMailEncloseOnNonReceipt        EQU        3                    ; enclose original in non-delivery reports 
  254. MailLetterID            RECORD 0
  255. f                         ds        IPMMsgID
  256. sizeof                     EQU *                    ; size:   $10 (16)
  257.                         ENDR
  258.  
  259.  
  260. MailTime                RECORD 0
  261. time                     ds.l    1                ; offset: $0 (0)        ;  current UTC(GMT) time 
  262. offset                     ds.l    1                ; offset: $4 (4)        ;  offset from GMT 
  263. sizeof                     EQU *                    ; size:   $8 (8)
  264.                         ENDR
  265. ;  innermost letter has nestingLevel 0 
  266. ; typedef unsigned short                 MailNestingLevel
  267.  
  268. MailRecipient            RECORD 0
  269. f                         ds        OCERecipient
  270. sizeof                     EQU *                    ; size:   $E (14)
  271.                         ENDR
  272.  
  273.  
  274. ; *************************************************************************************
  275.  
  276. kMailTextSegmentBit                EQU        0
  277. kMailPictSegmentBit                EQU        1
  278. kMailSoundSegmentBit            EQU        2
  279. kMailStyledTextSegmentBit        EQU        3
  280. kMailMovieSegmentBit            EQU        4
  281. ; typedef unsigned short                 MailSegmentMask
  282.  
  283. ;  Values of MailSegmentMask 
  284.  
  285. kMailTextSegmentMask            EQU        $00000001
  286. kMailPictSegmentMask            EQU        $00000002
  287. kMailSoundSegmentMask            EQU        $00000004
  288. kMailStyledTextSegmentMask        EQU        $00000008
  289. kMailMovieSegmentMask            EQU        $00000010
  290. ; typedef unsigned short                 MailSegmentType
  291.  
  292. ;  Values of MailSegmentType 
  293.  
  294. kMailInvalidSegmentType            EQU        0
  295. kMailTextSegmentType            EQU        1
  296. kMailPictSegmentType            EQU        2
  297. kMailSoundSegmentType            EQU        3
  298. kMailStyledTextSegmentType        EQU        4
  299. kMailMovieSegmentType            EQU        5
  300. ; *************************************************************************************
  301.  
  302. kMailErrorLogEntryVersion        EQU        $0101
  303. kMailMSAMErrorStringListID        EQU        128                    ; These 'STR#' resources should be 
  304. kMailMSAMActionStringListID        EQU        129                    ; in the PMSAM resource fork 
  305. ; typedef unsigned short                 MailLogErrorType
  306.  
  307. ;  Values of MailLogErrorType 
  308.  
  309. kMailELECorrectable                EQU        0
  310. kMailELEError                    EQU        1
  311. kMailELEWarning                    EQU        2
  312. kMailELEInformational            EQU        3
  313. ; typedef short                         MailLogErrorCode
  314.  
  315. ;  Values of MailLogErrorCode 
  316.  
  317. kMailMSAMErrorCode                EQU        0                    ; positive codes are indices into PMSAM defined strings 
  318. kMailMiscError                    EQU        -1                    ; negative codes are OCE defined 
  319. kMailNoModem                    EQU        -2                    ; modem required, but missing 
  320. MailErrorLogEntryInfo    RECORD 0
  321. version                     ds.w    1                ; offset: $0 (0)
  322. timeOccurred             ds.l    1                ; offset: $2 (2)        ;  do not fill in 
  323. reportingPMSAM             ds        Str31            ; offset: $6 (6)        ;  do not fill in 
  324. reportingMSAMSlot         ds        Str31            ; offset: $26 (38)        ;  do not fill in 
  325. errorType                 ds.w    1                ; offset: $46 (70)
  326. errorCode                 ds.w    1                ; offset: $48 (72)
  327. errorResource             ds.w    1                ; offset: $4A (74)        ;  resources are valid if 
  328. actionResource             ds.w    1                ; offset: $4C (76)        ;  errorCode = kMailMSAMErrorCode index starts from 1 
  329. filler                     ds.l    1                ; offset: $4E (78)
  330. filler2                     ds.w    1                ; offset: $52 (82)
  331. sizeof                     EQU *                    ; size:   $54 (84)
  332.                         ENDR
  333. ; *************************************************************************************
  334. ; typedef short                         MailBlockMode
  335.  
  336. ;  Values of MailBlockMode 
  337.  
  338. kMailFromStart                    EQU        1                    ; write data from offset calculated from 
  339. kMailFromLEOB                    EQU        2                    ; start of block, end of block, 
  340. kMailFromMark                    EQU        3                    ; or from the current mark 
  341. MailEnclosureInfo        RECORD 0
  342. enclosureName             ds.l    1                ; offset: $0 (0)
  343. catInfo                     ds.l    1                ; offset: $4 (4)
  344. comment                     ds.l    1                ; offset: $8 (8)
  345. icon                     ds.l    1                ; offset: $C (12)
  346. sizeof                     EQU *                    ; size:   $10 (16)
  347.                         ENDR
  348. ; *************************************************************************************
  349.  
  350. kOCESetupLocationNone            EQU        0                    ; disconnect state 
  351. kOCESetupLocationMax            EQU        8                    ; maximum location value 
  352. ; typedef char                             OCESetupLocation
  353.  
  354. ;  location state is a bitmask, 0x1=>1st location active, 
  355. ; * 0x2 => 2nd, 0x4 => 3rd, etc.
  356.  
  357. ; typedef UInt8                         MailLocationFlags
  358.  
  359. MailLocationInfo        RECORD 0
  360. location                 ds.b    1                ; offset: $0 (0)
  361. active                     ds.b    1                ; offset: $1 (1)
  362. sizeof                     EQU *                    ; size:   $2 (2)
  363.                         ENDR
  364. ; *************************************************************************************
  365. ;  Definitions for Personal MSAMs 
  366. ; *************************************************************************************
  367.  
  368. kMailEPPCMsgVersion                EQU        3
  369. MailEPPCMsg                RECORD 0
  370. version                     ds.w    1                ; offset: $0 (0)
  371. theSMCA                     ds.l    1                ; offset: $2 (2)        ;  for 'crsl', 'mdsl', 'dlsl', 'sndi', 'msgo', 'admn' 
  372.                          ORG 2
  373. sequenceNumber             ds.l    1                ; offset: $2 (2)        ;  for 'inqu', 'dlom' 
  374.                          ORG 2
  375. locationInfo             ds        MailLocationInfo ; offset: $2 (2)        ;  for 'locc' 
  376.                          ORG 6
  377. sizeof                     EQU *                    ; size:   $6 (6)
  378.                         ENDR
  379. ;  Values of OCE defined High Level Event message classes 
  380.  
  381. kMailEPPCCreateSlot                EQU        'crsl'
  382. kMailEPPCModifySlot                EQU        'mdsl'
  383. kMailEPPCDeleteSlot                EQU        'dlsl'
  384. kMailEPPCShutDown                EQU        'quit'
  385. kMailEPPCMailboxOpened            EQU        'mbop'
  386. kMailEPPCMailboxClosed            EQU        'mbcl'
  387. kMailEPPCMsgPending                EQU        'msgp'
  388. kMailEPPCSendImmediate            EQU        'sndi'
  389. kMailEPPCContinue                EQU        'cont'
  390. kMailEPPCSchedule                EQU        'sked'
  391. kMailEPPCAdmin                    EQU        'admn'
  392. kMailEPPCInQUpdate                EQU        'inqu'
  393. kMailEPPCMsgOpened                EQU        'msgo'
  394. kMailEPPCDeleteOutQMsg            EQU        'dlom'
  395. kMailEPPCWakeup                    EQU        'wkup'
  396. kMailEPPCLocationChanged        EQU        'locc'
  397. MailTimer                RECORD 0
  398. frequency                 ds.l    1                ; offset: $0 (0)        ;  how often to connect 
  399.                          ORG 0
  400. connectTime                 ds.l    1                ; offset: $0 (0)        ;  time since midnight 
  401. sizeof                     EQU *                    ; size:   $4 (4)
  402.                         ENDR
  403.  
  404. kMailTimerOff                    EQU        0                    ; control is off 
  405. kMailTimerTime                    EQU        1                    ; specifies connect time (relative to midnight) 
  406. kMailTimerFrequency                EQU        2                    ; specifies connect frequency 
  407. ; typedef Byte                             MailTimerKind
  408.  
  409. MailTimers                RECORD 0
  410. sendTimeKind             ds.b    1                ; offset: $0 (0)        ;  either kMailTimerTime or kMailTimerFrequency 
  411. receiveTimeKind             ds.b    1                ; offset: $1 (1)        ;  either kMailTimerTime or kMailTimerFrequency 
  412. send                     ds        MailTimer        ; offset: $2 (2)
  413. receive                     ds        MailTimer        ; offset: $6 (6)
  414. sizeof                     EQU *                    ; size:   $A (10)
  415.                         ENDR
  416.  
  417. MailStandardSlotInfoAttribute RECORD 0
  418. version                     ds.w    1                ; offset: $0 (0)
  419. active                     ds.b    1                ; offset: $2 (2)        ;  active if MailLocationMask(i) is set 
  420. padByte                     ds.b    1                ; offset: $3 (3)
  421. sendReceiveTimer         ds        MailTimers        ; offset: $4 (4)
  422. sizeof                     EQU *                    ; size:   $E (14)
  423.                         ENDR
  424. PMSAMGetMSAMRecordPB    RECORD 0
  425. qLink                     ds.l    1                ; offset: $0 (0)
  426. reservedH1                 ds.l    1                ; offset: $4 (4)
  427. reservedH2                 ds.l    1                ; offset: $8 (8)
  428. ioCompletion             ds.l    1                ; offset: $C (12)
  429. ioResult                 ds.w    1                ; offset: $10 (16)
  430. saveA5                     ds.l    1                ; offset: $12 (18)
  431. reqCode                     ds.w    1                ; offset: $16 (22)
  432. msamCID                     ds        CreationID        ; offset: $18 (24)
  433. sizeof                     EQU *                    ; size:   $20 (32)
  434.                         ENDR
  435. PMSAMOpenQueuesPB        RECORD 0
  436. qLink                     ds.l    1                ; offset: $0 (0)
  437. reservedH1                 ds.l    1                ; offset: $4 (4)
  438. reservedH2                 ds.l    1                ; offset: $8 (8)
  439. ioCompletion             ds.l    1                ; offset: $C (12)
  440. ioResult                 ds.w    1                ; offset: $10 (16)
  441. saveA5                     ds.l    1                ; offset: $12 (18)
  442. reqCode                     ds.w    1                ; offset: $16 (22)
  443. inQueueRef                 ds.l    1                ; offset: $18 (24)
  444. outQueueRef                 ds.l    1                ; offset: $1C (28)
  445. msamSlotID                 ds.w    1                ; offset: $20 (32)
  446. filler                     ds.l    2                ; offset: $22 (34)
  447. sizeof                     EQU *                    ; size:   $2A (42)
  448.                         ENDR
  449. ; typedef unsigned short                 PMSAMStatus
  450.  
  451. ;  Values of PMSAMStatus 
  452.  
  453. kPMSAMStatusPending                EQU        1                    ; for inQueue and outQueue 
  454. kPMSAMStatusError                EQU        2                    ; for inQueue and outQueue 
  455. kPMSAMStatusSending                EQU        3                    ; for outQueue only 
  456. kPMSAMStatusCaching                EQU        4                    ; for inQueue only 
  457. kPMSAMStatusSent                EQU        5                    ; for outQueue only 
  458. PMSAMSetStatusPB        RECORD 0
  459. qLink                     ds.l    1                ; offset: $0 (0)
  460. reservedH1                 ds.l    1                ; offset: $4 (4)
  461. reservedH2                 ds.l    1                ; offset: $8 (8)
  462. ioCompletion             ds.l    1                ; offset: $C (12)
  463. ioResult                 ds.w    1                ; offset: $10 (16)
  464. saveA5                     ds.l    1                ; offset: $12 (18)
  465. reqCode                     ds.w    1                ; offset: $16 (22)
  466. queueRef                 ds.l    1                ; offset: $18 (24)
  467. seqNum                     ds.l    1                ; offset: $1C (28)
  468. msgHint                     ds.l    1                ; offset: $20 (32)        ;  for posting cache error,set this to 0 when report outq status 
  469. status                     ds.w    1                ; offset: $24 (36)
  470. sizeof                     EQU *                    ; size:   $26 (38)
  471.                         ENDR
  472. PMSAMLogErrorPB            RECORD 0
  473. qLink                     ds.l    1                ; offset: $0 (0)
  474. reservedH1                 ds.l    1                ; offset: $4 (4)
  475. reservedH2                 ds.l    1                ; offset: $8 (8)
  476. ioCompletion             ds.l    1                ; offset: $C (12)
  477. ioResult                 ds.w    1                ; offset: $10 (16)
  478. saveA5                     ds.l    1                ; offset: $12 (18)
  479. reqCode                     ds.w    1                ; offset: $16 (22)
  480. msamSlotID                 ds.w    1                ; offset: $18 (24)        ;  0 for PMSAM errors 
  481. logEntry                 ds.l    1                ; offset: $1A (26)
  482. filler                     ds.l    2                ; offset: $1E (30)
  483. sizeof                     EQU *                    ; size:   $26 (38)
  484.                         ENDR
  485. ; ***************************************************************************************
  486.  
  487. kMailMsgSummaryVersion            EQU        1
  488. MailMasterData            RECORD 0
  489. attrMask                 ds.l    1                ; offset: $0 (0)        ;  indicates attributes present in MsgSummary 
  490. messageID                 ds        MailLetterID    ; offset: $4 (4)
  491. replyID                     ds        MailLetterID    ; offset: $14 (20)
  492. conversationID             ds        MailLetterID    ; offset: $24 (36)
  493. sizeof                     EQU *                    ; size:   $34 (52)
  494.                         ENDR
  495. ;  Values for addressedToMe in struct MailCoreData 
  496.  
  497. kAddressedAs_TO                    EQU        $01
  498. kAddressedAs_CC                    EQU        $02
  499. kAddressedAs_BCC                EQU        $04
  500. MailCoreData            RECORD 0
  501. letterFlags                 ds        MailLetterFlags ; offset: $0 (0)
  502. messageSize                 ds.l    1                ; offset: $4 (4)
  503. letterIndications         ds.l    1                ; offset: $8 (8)
  504. messageType                 ds        OCECreatorType ; offset: $C (12)
  505. sendTime                 ds        MailTime        ; offset: $14 (20)
  506. messageFamily             ds.l    1                ; offset: $1C (28)
  507. reserved                 ds.b    1                ; offset: $20 (32)
  508. addressedToMe             ds.b    1                ; offset: $21 (33)
  509. agentInfo                 ds.b    6                ; offset: $22 (34)        ;  6 bytes of special info [set to zero] 
  510. ;  these are variable length and even padded 
  511. sender                     ds        RString32        ; offset: $28 (40)        ;  recipient's entityName (trunc)
  512. subject                     ds        RString32        ; offset: $4C (76)        ;  subject maybe truncated 
  513. sizeof                     EQU *                    ; size:   $70 (112)
  514.                         ENDR
  515. MSAMMsgSummary            RECORD 0
  516. version                     ds.w    1                ; offset: $0 (0)        ;  following flags are defaulted by Toolbox 
  517. msgDeleted                 ds.b    1                ; offset: $2 (2)        ;  true if msg is to be deleted by PMSAM 
  518. msgUpdated                 ds.b    1                ; offset: $3 (3)        ;  true if msgSummary was updated by MailManager 
  519. msgCached                 ds.b    1                ; offset: $4 (4)        ;  true if msg is in the slot's InQueue 
  520. padByte                     ds.b    1                ; offset: $5 (5)
  521. masterData                 ds        MailMasterData ; offset: $6 (6)
  522. coreData                 ds        MailCoreData    ; offset: $3A (58)
  523. sizeof                     EQU *                    ; size:   $AA (170)
  524.                         ENDR
  525. ;  PMSAM can put up to 128 bytes of private msg summary data 
  526.  
  527. kMailMaxPMSAMMsgSummaryData        EQU        128
  528. PMSAMCreateMsgSummaryPB    RECORD 0
  529. qLink                     ds.l    1                ; offset: $0 (0)
  530. reservedH1                 ds.l    1                ; offset: $4 (4)
  531. reservedH2                 ds.l    1                ; offset: $8 (8)
  532. ioCompletion             ds.l    1                ; offset: $C (12)
  533. ioResult                 ds.w    1                ; offset: $10 (16)
  534. saveA5                     ds.l    1                ; offset: $12 (18)
  535. reqCode                     ds.w    1                ; offset: $16 (22)
  536. inQueueRef                 ds.l    1                ; offset: $18 (24)
  537. seqNum                     ds.l    1                ; offset: $1C (28)        ;  <- seq of the new message 
  538. msgSummary                 ds.l    1                ; offset: $20 (32)        ;  attributes and mask filled in 
  539. buffer                     ds.l    1                ; offset: $24 (36)        ;  PMSAM specific data to be appended 
  540. sizeof                     EQU *                    ; size:   $28 (40)
  541.                         ENDR
  542.  
  543. PMSAMPutMsgSummaryPB    RECORD 0
  544. qLink                     ds.l    1                ; offset: $0 (0)
  545. reservedH1                 ds.l    1                ; offset: $4 (4)
  546. reservedH2                 ds.l    1                ; offset: $8 (8)
  547. ioCompletion             ds.l    1                ; offset: $C (12)
  548. ioResult                 ds.w    1                ; offset: $10 (16)
  549. saveA5                     ds.l    1                ; offset: $12 (18)
  550. reqCode                     ds.w    1                ; offset: $16 (22)
  551. inQueueRef                 ds.l    1                ; offset: $18 (24)
  552. seqNum                     ds.l    1                ; offset: $1C (28)
  553. letterFlags                 ds.l    1                ; offset: $20 (32)        ;  if not nil, then set msgStoreFlags 
  554. buffer                     ds.l    1                ; offset: $24 (36)        ;  PMSAM specific data to be overwritten 
  555. sizeof                     EQU *                    ; size:   $28 (40)
  556.                         ENDR
  557. PMSAMGetMsgSummaryPB    RECORD 0
  558. qLink                     ds.l    1                ; offset: $0 (0)
  559. reservedH1                 ds.l    1                ; offset: $4 (4)
  560. reservedH2                 ds.l    1                ; offset: $8 (8)
  561. ioCompletion             ds.l    1                ; offset: $C (12)
  562. ioResult                 ds.w    1                ; offset: $10 (16)
  563. saveA5                     ds.l    1                ; offset: $12 (18)
  564. reqCode                     ds.w    1                ; offset: $16 (22)
  565. inQueueRef                 ds.l    1                ; offset: $18 (24)
  566. seqNum                     ds.l    1                ; offset: $1C (28)
  567. msgSummary                 ds.l    1                ; offset: $20 (32)        ;  if not nil, then read in the msgSummary 
  568. buffer                     ds.l    1                ; offset: $24 (36)        ;  PMSAM specific data to be read 
  569. msgSummaryOffset         ds.w    1                ; offset: $28 (40)        ;  offset of PMSAM specific data from start of MsgSummary 
  570. sizeof                     EQU *                    ; size:   $2A (42)
  571.                         ENDR
  572. ; ***************************************************************************************
  573. ;  Definitions for Server MSAMs 
  574. ; *************************************************************************************
  575. ; typedef unsigned short                 SMSAMAdminCode
  576.  
  577. ;  Values of SMSAMAdminCode 
  578.  
  579. kSMSAMNotifyFwdrSetupChange        EQU        1
  580. kSMSAMNotifyFwdrNameChange        EQU        2
  581. kSMSAMNotifyFwdrPwdChange        EQU        3
  582. kSMSAMGetDynamicFwdrParams        EQU        4
  583. ; typedef unsigned long                 SMSAMSlotChanges
  584.  
  585.  
  586. kSMSAMFwdrHomeInternetChangedBit EQU    0
  587. kSMSAMFwdrConnectedToChangedBit    EQU        1
  588. kSMSAMFwdrForeignRLIsChangedBit    EQU        2
  589. kSMSAMFwdrMnMServerChangedBit    EQU        3
  590. ;  Values of SMSAMSlotChanges 
  591.  
  592. kSMSAMFwdrEverythingChangedMask    EQU        -1
  593. kSMSAMFwdrHomeInternetChangedMask EQU    $00000001
  594. kSMSAMFwdrConnectedToChangedMask EQU    $00000002
  595. kSMSAMFwdrForeignRLIsChangedMask EQU    $00000004
  596. kSMSAMFwdrMnMServerChangedMask    EQU        $00000008
  597. ;  kSMSAMNotifyFwdrSetupChange 
  598. SMSAMSetupChange        RECORD 0
  599. whatChanged                 ds.l    1                ; offset: $0 (0)        ;   --> bitmap of what parameters changed 
  600. serverHint                 ds        AddrBlock        ; offset: $4 (4)        ;   --> try this ADAP server first 
  601. sizeof                     EQU *                    ; size:   $8 (8)
  602.                         ENDR
  603. ;  kSMSAMNotifyFwdrNameChange 
  604. SMSAMNameChange            RECORD 0
  605. newName                     ds        RString            ; offset: $0 (0)        ;   --> msams new name 
  606. serverHint                 ds        AddrBlock        ; offset: $104 (260)    ;   --> try this ADAP server first 
  607. sizeof                     EQU *                    ; size:   $108 (264)
  608.                         ENDR
  609. ;  kSMSAMNotifyFwdrPasswordChange 
  610. SMSAMPasswordChange        RECORD 0
  611. newPassword                 ds        RString            ; offset: $0 (0)        ;   --> msams new password 
  612. serverHint                 ds        AddrBlock        ; offset: $104 (260)    ;   --> try this ADAP server first 
  613. sizeof                     EQU *                    ; size:   $108 (264)
  614.                         ENDR
  615. ;  kSMSAMGetDynamicFwdrParams 
  616. SMSAMDynamicParams        RECORD 0
  617. curDiskUsed                 ds.l    1                ; offset: $0 (0)        ;  <--  amount of disk space used by msam 
  618. curMemoryUsed             ds.l    1                ; offset: $4 (4)        ;  <--  amount of memory used by msam 
  619. sizeof                     EQU *                    ; size:   $8 (8)
  620.                         ENDR
  621. SMSAMAdminEPPCRequest    RECORD 0
  622. adminCode                 ds.w    1                ; offset: $0 (0)
  623. setupChange                 ds        SMSAMSetupChange ; offset: $2 (2)
  624.                          ORG 2
  625. nameChange                 ds        SMSAMNameChange ; offset: $2 (2)
  626.                          ORG 2
  627. passwordChange             ds        SMSAMPasswordChange ; offset: $2 (2)
  628.                          ORG 2
  629. dynamicParams             ds        SMSAMDynamicParams ; offset: $2 (2)
  630.                          ORG 266
  631. sizeof                     EQU *                    ; size:   $10A (266)
  632.                         ENDR
  633. SMSAMSetupPB            RECORD 0
  634. qLink                     ds.l    1                ; offset: $0 (0)
  635. reservedH1                 ds.l    1                ; offset: $4 (4)
  636. reservedH2                 ds.l    1                ; offset: $8 (8)
  637. ioCompletion             ds.l    1                ; offset: $C (12)
  638. ioResult                 ds.w    1                ; offset: $10 (16)
  639. saveA5                     ds.l    1                ; offset: $12 (18)
  640. reqCode                     ds.w    1                ; offset: $16 (22)
  641. serverMSAM                 ds.l    1                ; offset: $18 (24)
  642. password                 ds.l    1                ; offset: $1C (28)
  643. gatewayType                 ds.l    1                ; offset: $20 (32)
  644. gatewayTypeDescription     ds.l    1                ; offset: $24 (36)
  645. catalogServerHint         ds        AddrBlock        ; offset: $28 (40)
  646. sizeof                     EQU *                    ; size:   $2C (44)
  647.                         ENDR
  648. SMSAMStartupPB            RECORD 0
  649. qLink                     ds.l    1                ; offset: $0 (0)
  650. reservedH1                 ds.l    1                ; offset: $4 (4)
  651. reservedH2                 ds.l    1                ; offset: $8 (8)
  652. ioCompletion             ds.l    1                ; offset: $C (12)
  653. ioResult                 ds.w    1                ; offset: $10 (16)
  654. saveA5                     ds.l    1                ; offset: $12 (18)
  655. reqCode                     ds.w    1                ; offset: $16 (22)
  656. msamIdentity             ds.l    1                ; offset: $18 (24)
  657. queueRef                 ds.l    1                ; offset: $1C (28)
  658. sizeof                     EQU *                    ; size:   $20 (32)
  659.                         ENDR
  660. SMSAMShutdownPB            RECORD 0
  661. qLink                     ds.l    1                ; offset: $0 (0)
  662. reservedH1                 ds.l    1                ; offset: $4 (4)
  663. reservedH2                 ds.l    1                ; offset: $8 (8)
  664. ioCompletion             ds.l    1                ; offset: $C (12)
  665. ioResult                 ds.w    1                ; offset: $10 (16)
  666. saveA5                     ds.l    1                ; offset: $12 (18)
  667. reqCode                     ds.w    1                ; offset: $16 (22)
  668. queueRef                 ds.l    1                ; offset: $18 (24)
  669. sizeof                     EQU *                    ; size:   $1C (28)
  670.                         ENDR
  671. ; ***************************************************************************************
  672. ;  Definitions for reading and writing MSAM Letters 
  673. ; ***************************************************************************************
  674. MSAMEnumeratePB            RECORD 0
  675. qLink                     ds.l    1                ; offset: $0 (0)
  676. reservedH1                 ds.l    1                ; offset: $4 (4)
  677. reservedH2                 ds.l    1                ; offset: $8 (8)
  678. ioCompletion             ds.l    1                ; offset: $C (12)
  679. ioResult                 ds.w    1                ; offset: $10 (16)
  680. saveA5                     ds.l    1                ; offset: $12 (18)
  681. reqCode                     ds.w    1                ; offset: $16 (22)
  682. queueRef                 ds.l    1                ; offset: $18 (24)
  683. startSeqNum                 ds.l    1                ; offset: $1C (28)
  684. nextSeqNum                 ds.l    1                ; offset: $20 (32)
  685. ;  buffer contains a Mail Reply. Each tuple is a MSAMEnumerateInQReply when enumerating the inQueue MSAMEnumerateOutQReply when enumerating the outQueue 
  686. buffer                     ds        MailBuffer        ; offset: $24 (36)
  687. sizeof                     EQU *                    ; size:   $30 (48)
  688.                         ENDR
  689. MSAMEnumerateInQReply    RECORD 0
  690. seqNum                     ds.l    1                ; offset: $0 (0)
  691. msgDeleted                 ds.b    1                ; offset: $4 (4)        ;  true if msg is to be deleted by PMSAM 
  692. msgUpdated                 ds.b    1                ; offset: $5 (5)        ;  true if MsgSummary has been updated by TB 
  693. msgCached                 ds.b    1                ; offset: $6 (6)        ;  true if msg is in the incoming queue 
  694. padByte                     ds.b    1                ; offset: $7 (7)
  695. sizeof                     EQU *                    ; size:   $8 (8)
  696.                         ENDR
  697. MSAMEnumerateOutQReply    RECORD 0
  698. seqNum                     ds.l    1                ; offset: $0 (0)
  699. done                     ds.b    1                ; offset: $4 (4)        ;  true if all responsible recipients have been processed 
  700. priority                 ds.b    1                ; offset: $5 (5)
  701. msgFamily                 ds.l    1                ; offset: $6 (6)
  702. approxSize                 ds.l    1                ; offset: $A (10)
  703. tunnelForm                 ds.b    1                ; offset: $E (14)        ;  true if this letter has to be tunnelled 
  704. padByte                     ds.b    1                ; offset: $F (15)
  705. nextHop                     ds        NetworkSpec        ; offset: $10 (16)        ;  valid if tunnelForm is true 
  706. msgType                     ds        OCECreatorType ; offset: $34 (52)
  707. sizeof                     EQU *                    ; size:   $3C (60)
  708.                         ENDR
  709. MSAMDeletePB            RECORD 0
  710. qLink                     ds.l    1                ; offset: $0 (0)
  711. reservedH1                 ds.l    1                ; offset: $4 (4)
  712. reservedH2                 ds.l    1                ; offset: $8 (8)
  713. ioCompletion             ds.l    1                ; offset: $C (12)
  714. ioResult                 ds.w    1                ; offset: $10 (16)
  715. saveA5                     ds.l    1                ; offset: $12 (18)
  716. reqCode                     ds.w    1                ; offset: $16 (22)
  717. queueRef                 ds.l    1                ; offset: $18 (24)
  718. seqNum                     ds.l    1                ; offset: $1C (28)
  719. msgOnly                     ds.b    1                ; offset: $20 (32)        ;  only valid for PMSAM & inQueue 
  720. ;  set true to delete message but not msgSummary 
  721. padByte                     ds.b    1                ; offset: $21 (33)
  722. ;  only valid for SMSAM & tunnelled messages 
  723. result                     ds.w    1                ; offset: $22 (34)
  724. sizeof                     EQU *                    ; size:   $24 (36)
  725.                         ENDR
  726. MSAMOpenPB                RECORD 0
  727. qLink                     ds.l    1                ; offset: $0 (0)
  728. reservedH1                 ds.l    1                ; offset: $4 (4)
  729. reservedH2                 ds.l    1                ; offset: $8 (8)
  730. ioCompletion             ds.l    1                ; offset: $C (12)
  731. ioResult                 ds.w    1                ; offset: $10 (16)
  732. saveA5                     ds.l    1                ; offset: $12 (18)
  733. reqCode                     ds.w    1                ; offset: $16 (22)
  734. queueRef                 ds.l    1                ; offset: $18 (24)
  735. seqNum                     ds.l    1                ; offset: $1C (28)
  736. mailMsgRef                 ds.l    1                ; offset: $20 (32)
  737. sizeof                     EQU *                    ; size:   $24 (36)
  738.                         ENDR
  739. MSAMOpenNestedPB        RECORD 0
  740. qLink                     ds.l    1                ; offset: $0 (0)
  741. reservedH1                 ds.l    1                ; offset: $4 (4)
  742. reservedH2                 ds.l    1                ; offset: $8 (8)
  743. ioCompletion             ds.l    1                ; offset: $C (12)
  744. ioResult                 ds.w    1                ; offset: $10 (16)
  745. saveA5                     ds.l    1                ; offset: $12 (18)
  746. reqCode                     ds.w    1                ; offset: $16 (22)
  747. mailMsgRef                 ds.l    1                ; offset: $18 (24)
  748. nestedRef                 ds.l    1                ; offset: $1C (28)
  749. sizeof                     EQU *                    ; size:   $20 (32)
  750.                         ENDR
  751. MSAMClosePB                RECORD 0
  752. qLink                     ds.l    1                ; offset: $0 (0)
  753. reservedH1                 ds.l    1                ; offset: $4 (4)
  754. reservedH2                 ds.l    1                ; offset: $8 (8)
  755. ioCompletion             ds.l    1                ; offset: $C (12)
  756. ioResult                 ds.w    1                ; offset: $10 (16)
  757. saveA5                     ds.l    1                ; offset: $12 (18)
  758. reqCode                     ds.w    1                ; offset: $16 (22)
  759. mailMsgRef                 ds.l    1                ; offset: $18 (24)
  760. sizeof                     EQU *                    ; size:   $1C (28)
  761.                         ENDR
  762. MSAMGetMsgHeaderPB        RECORD 0
  763. qLink                     ds.l    1                ; offset: $0 (0)
  764. reservedH1                 ds.l    1                ; offset: $4 (4)
  765. reservedH2                 ds.l    1                ; offset: $8 (8)
  766. ioCompletion             ds.l    1                ; offset: $C (12)
  767. ioResult                 ds.w    1                ; offset: $10 (16)
  768. saveA5                     ds.l    1                ; offset: $12 (18)
  769. reqCode                     ds.w    1                ; offset: $16 (22)
  770. mailMsgRef                 ds.l    1                ; offset: $18 (24)
  771. selector                 ds.b    1                ; offset: $1C (28)
  772. filler1                     ds.b    1                ; offset: $1D (29)
  773. offset                     ds.l    1                ; offset: $1E (30)
  774. buffer                     ds        MailBuffer        ; offset: $22 (34)
  775. remaining                 ds.l    1                ; offset: $2E (46)
  776. sizeof                     EQU *                    ; size:   $32 (50)
  777.                         ENDR
  778. ;     MSAMGetAttributesPB.buffer returned will contain the attribute values of 
  779. ;    the attributes indicated in responseMask, 
  780. ;    from the attribute indicated by the least significant bit set
  781. ;    to the attribute indicated by the most significant bit set.
  782. ;    Note that recipients - from, to, cc, bcc cannot be read using
  783. ;    this call. Use GetRecipients to read these. 
  784. ;
  785.  
  786. MSAMGetAttributesPB        RECORD 0
  787. qLink                     ds.l    1                ; offset: $0 (0)
  788. reservedH1                 ds.l    1                ; offset: $4 (4)
  789. reservedH2                 ds.l    1                ; offset: $8 (8)
  790. ioCompletion             ds.l    1                ; offset: $C (12)
  791. ioResult                 ds.w    1                ; offset: $10 (16)
  792. saveA5                     ds.l    1                ; offset: $12 (18)
  793. reqCode                     ds.w    1                ; offset: $16 (22)
  794. mailMsgRef                 ds.l    1                ; offset: $18 (24)
  795. requestMask                 ds.l    1                ; offset: $1C (28)        ;  kMailIndicationsBit thru kMailSubjectBit 
  796. buffer                     ds        MailBuffer        ; offset: $20 (32)
  797. responseMask             ds.l    1                ; offset: $2C (44)
  798. more                     ds.b    1                ; offset: $30 (48)
  799. filler1                     ds.b    1                ; offset: $31 (49)
  800. sizeof                     EQU *                    ; size:   $32 (50)
  801.                         ENDR
  802. ;  attrID value to get resolved recipient list 
  803.  
  804. kMailResolvedList                EQU        0
  805. MailOriginalRecipient    RECORD 0
  806. index                     ds.w    1                ; offset: $0 (0)
  807. sizeof                     EQU *                    ; size:   $2 (2)
  808.                         ENDR
  809. ;  Followed by OCEPackedRecipient 
  810.  
  811.  
  812. MailResolvedRecipient    RECORD 0
  813. index                     ds.w    1                ; offset: $0 (0)
  814. recipientFlags             ds.w    1                ; offset: $2 (2)
  815. responsible                 ds.b    1                ; offset: $4 (4)
  816. padByte                     ds.b    1                ; offset: $5 (5)
  817. sizeof                     EQU *                    ; size:   $6 (6)
  818.                         ENDR
  819. ;  Followed by OCEPackedRecipient 
  820.  
  821.  
  822. ;      MSAMGetRecipientsPB.buffer contains a Mail Reply. Each tuple is a
  823. ;    MailOriginalRecipient if getting original recipients 
  824. ;                            ie the attrID is kMail[From, To, Cc, Bcc]Bit
  825. ;    MailResolvedRecipient if getting resolved reicpients
  826. ;                            ie the attrID is kMailResolvedList
  827. ;    Both tuples are word alligned.  
  828. ;
  829.  
  830. MSAMGetRecipientsPB        RECORD 0
  831. qLink                     ds.l    1                ; offset: $0 (0)
  832. reservedH1                 ds.l    1                ; offset: $4 (4)
  833. reservedH2                 ds.l    1                ; offset: $8 (8)
  834. ioCompletion             ds.l    1                ; offset: $C (12)
  835. ioResult                 ds.w    1                ; offset: $10 (16)
  836. saveA5                     ds.l    1                ; offset: $12 (18)
  837. reqCode                     ds.w    1                ; offset: $16 (22)
  838. mailMsgRef                 ds.l    1                ; offset: $18 (24)
  839. attrID                     ds.w    1                ; offset: $1C (28)        ;  kMailFromBit thru kMailBccBit 
  840. startIndex                 ds.w    1                ; offset: $1E (30)        ;  starts at 1 
  841. buffer                     ds        MailBuffer        ; offset: $20 (32)
  842. nextIndex                 ds.w    1                ; offset: $2C (44)
  843. more                     ds.b    1                ; offset: $2E (46)
  844. filler1                     ds.b    1                ; offset: $2F (47)
  845. sizeof                     EQU *                    ; size:   $30 (48)
  846.                         ENDR
  847. MSAMGetContentPB        RECORD 0
  848. qLink                     ds.l    1                ; offset: $0 (0)
  849. reservedH1                 ds.l    1                ; offset: $4 (4)
  850. reservedH2                 ds.l    1                ; offset: $8 (8)
  851. ioCompletion             ds.l    1                ; offset: $C (12)
  852. ioResult                 ds.w    1                ; offset: $10 (16)
  853. saveA5                     ds.l    1                ; offset: $12 (18)
  854. reqCode                     ds.w    1                ; offset: $16 (22)
  855. mailMsgRef                 ds.l    1                ; offset: $18 (24)
  856. segmentMask                 ds.w    1                ; offset: $1C (28)
  857. buffer                     ds        MailBuffer        ; offset: $1E (30)
  858. textScrap                 ds.l    1                ; offset: $2A (42)
  859. script                     ds.w    1                ; offset: $2E (46)
  860. segmentType                 ds.w    1                ; offset: $30 (48)
  861. endOfScript                 ds.b    1                ; offset: $32 (50)
  862. endOfSegment             ds.b    1                ; offset: $33 (51)
  863. endOfContent             ds.b    1                ; offset: $34 (52)
  864. filler1                     ds.b    1                ; offset: $35 (53)
  865. segmentLength             ds.l    1                ; offset: $36 (54)        ;  NEW: <-  valid first call in a segment 
  866. segmentID                 ds.l    1                ; offset: $3A (58)        ;  NEW: <-> identifier for this segment 
  867. sizeof                     EQU *                    ; size:   $3E (62)
  868.                         ENDR
  869. MSAMGetEnclosurePB        RECORD 0
  870. qLink                     ds.l    1                ; offset: $0 (0)
  871. reservedH1                 ds.l    1                ; offset: $4 (4)
  872. reservedH2                 ds.l    1                ; offset: $8 (8)
  873. ioCompletion             ds.l    1                ; offset: $C (12)
  874. ioResult                 ds.w    1                ; offset: $10 (16)
  875. saveA5                     ds.l    1                ; offset: $12 (18)
  876. reqCode                     ds.w    1                ; offset: $16 (22)
  877. mailMsgRef                 ds.l    1                ; offset: $18 (24)
  878. contentEnclosure         ds.b    1                ; offset: $1C (28)
  879. padByte                     ds.b    1                ; offset: $1D (29)
  880. buffer                     ds        MailBuffer        ; offset: $1E (30)
  881. endOfFile                 ds.b    1                ; offset: $2A (42)
  882. endOfEnclosures             ds.b    1                ; offset: $2B (43)
  883. sizeof                     EQU *                    ; size:   $2C (44)
  884.                         ENDR
  885. MailBlockInfo            RECORD 0
  886. blockType                 ds        OCECreatorType ; offset: $0 (0)
  887. offset                     ds.l    1                ; offset: $8 (8)
  888. blockLength                 ds.l    1                ; offset: $C (12)
  889. sizeof                     EQU *                    ; size:   $10 (16)
  890.                         ENDR
  891. MSAMEnumerateBlocksPB    RECORD 0
  892. qLink                     ds.l    1                ; offset: $0 (0)
  893. reservedH1                 ds.l    1                ; offset: $4 (4)
  894. reservedH2                 ds.l    1                ; offset: $8 (8)
  895. ioCompletion             ds.l    1                ; offset: $C (12)
  896. ioResult                 ds.w    1                ; offset: $10 (16)
  897. saveA5                     ds.l    1                ; offset: $12 (18)
  898. reqCode                     ds.w    1                ; offset: $16 (22)
  899. mailMsgRef                 ds.l    1                ; offset: $18 (24)
  900. startIndex                 ds.w    1                ; offset: $1C (28)        ;  starts at 1 
  901. buffer                     ds        MailBuffer        ; offset: $1E (30)
  902. ;      buffer contains a Mail Reply. Each tuple is a MailBlockInfo 
  903. nextIndex                 ds.w    1                ; offset: $2A (42)
  904. more                     ds.b    1                ; offset: $2C (44)
  905. filler1                     ds.b    1                ; offset: $2D (45)
  906. sizeof                     EQU *                    ; size:   $2E (46)
  907.                         ENDR
  908. MSAMGetBlockPB            RECORD 0
  909. qLink                     ds.l    1                ; offset: $0 (0)
  910. reservedH1                 ds.l    1                ; offset: $4 (4)
  911. reservedH2                 ds.l    1                ; offset: $8 (8)
  912. ioCompletion             ds.l    1                ; offset: $C (12)
  913. ioResult                 ds.w    1                ; offset: $10 (16)
  914. saveA5                     ds.l    1                ; offset: $12 (18)
  915. reqCode                     ds.w    1                ; offset: $16 (22)
  916. mailMsgRef                 ds.l    1                ; offset: $18 (24)
  917. blockType                 ds        OCECreatorType ; offset: $1C (28)
  918. blockIndex                 ds.w    1                ; offset: $24 (36)
  919. buffer                     ds        MailBuffer        ; offset: $26 (38)
  920. dataOffset                 ds.l    1                ; offset: $32 (50)
  921. endOfBlock                 ds.b    1                ; offset: $36 (54)
  922. padByte                     ds.b    1                ; offset: $37 (55)
  923. remaining                 ds.l    1                ; offset: $38 (56)
  924. sizeof                     EQU *                    ; size:   $3C (60)
  925.                         ENDR
  926. ;  YOU SHOULD BE USING THE NEW FORM OF MARK RECIPIENTS
  927. ; * THIS VERSION IS MUCH SLOWER AND KEPT FOR COMPATIBILITY
  928. ; * REASONS.
  929. ;
  930.  
  931. ;  not valid for tunnel form letters 
  932. MSAMMarkRecipientsPB    RECORD 0
  933. qLink                     ds.l    1                ; offset: $0 (0)
  934. reservedH1                 ds.l    1                ; offset: $4 (4)
  935. reservedH2                 ds.l    1                ; offset: $8 (8)
  936. ioCompletion             ds.l    1                ; offset: $C (12)
  937. ioResult                 ds.w    1                ; offset: $10 (16)
  938. saveA5                     ds.l    1                ; offset: $12 (18)
  939. reqCode                     ds.w    1                ; offset: $16 (22)
  940. queueRef                 ds.l    1                ; offset: $18 (24)
  941. seqNum                     ds.l    1                ; offset: $1C (28)
  942. buffer                     ds        MailBuffer        ; offset: $20 (32)        ;      buffer contains a Mail Reply. Each tuple is an unsigned short, the index of a recipient to be marked. 
  943. sizeof                     EQU *                    ; size:   $2C (44)
  944.                         ENDR
  945. ;  
  946. ; * same as MSAMMarkRecipients except it takes a mailMsgRef instead of 
  947. ; * queueRef, seqNum 
  948. ;
  949.  
  950. ;  not valid for tunnel form letters 
  951. MSAMnMarkRecipientsPB    RECORD 0
  952. qLink                     ds.l    1                ; offset: $0 (0)
  953. reservedH1                 ds.l    1                ; offset: $4 (4)
  954. reservedH2                 ds.l    1                ; offset: $8 (8)
  955. ioCompletion             ds.l    1                ; offset: $C (12)
  956. ioResult                 ds.w    1                ; offset: $10 (16)
  957. saveA5                     ds.l    1                ; offset: $12 (18)
  958. reqCode                     ds.w    1                ; offset: $16 (22)
  959. mailMsgRef                 ds.l    1                ; offset: $18 (24)
  960. buffer                     ds        MailBuffer        ; offset: $1C (28)        ;      buffer contains a Mail Reply. Each tuple is an unsigned short, the index of a recipient to be marked. 
  961. sizeof                     EQU *                    ; size:   $28 (40)
  962.                         ENDR
  963. ; ***************************************************************************************
  964. MSAMCreatePB            RECORD 0
  965. qLink                     ds.l    1                ; offset: $0 (0)
  966. reservedH1                 ds.l    1                ; offset: $4 (4)
  967. reservedH2                 ds.l    1                ; offset: $8 (8)
  968. ioCompletion             ds.l    1                ; offset: $C (12)
  969. ioResult                 ds.w    1                ; offset: $10 (16)
  970. saveA5                     ds.l    1                ; offset: $12 (18)
  971. reqCode                     ds.w    1                ; offset: $16 (22)
  972. queueRef                 ds.l    1                ; offset: $18 (24)
  973. asLetter                 ds.b    1                ; offset: $1C (28)        ;  indicate if we should create as letter or msg 
  974. filler1                     ds.b    1                ; offset: $1D (29)
  975. msgType                     ds        IPMMsgType        ; offset: $1E (30)        ;  up to application discretion: must be of IPMSenderTag  kIPMOSFormatType for asLetter=true 
  976. refCon                     ds.l    1                ; offset: $42 (66)        ;  for messages only 
  977. seqNum                     ds.l    1                ; offset: $46 (70)        ;  set if creating message in the inQueue 
  978. tunnelForm                 ds.b    1                ; offset: $4A (74)        ;  if true tunnelForm else newForm 
  979. bccRecipients             ds.b    1                ; offset: $4B (75)        ;  true if creating letter with bcc recipients 
  980. newRef                     ds.l    1                ; offset: $4C (76)
  981. sizeof                     EQU *                    ; size:   $50 (80)
  982.                         ENDR
  983. MSAMBeginNestedPB        RECORD 0
  984. qLink                     ds.l    1                ; offset: $0 (0)
  985. reservedH1                 ds.l    1                ; offset: $4 (4)
  986. reservedH2                 ds.l    1                ; offset: $8 (8)
  987. ioCompletion             ds.l    1                ; offset: $C (12)
  988. ioResult                 ds.w    1                ; offset: $10 (16)
  989. saveA5                     ds.l    1                ; offset: $12 (18)
  990. reqCode                     ds.w    1                ; offset: $16 (22)
  991. mailMsgRef                 ds.l    1                ; offset: $18 (24)
  992. refCon                     ds.l    1                ; offset: $1C (28)        ;  for messages only 
  993. msgType                     ds        IPMMsgType        ; offset: $20 (32)
  994. sizeof                     EQU *                    ; size:   $44 (68)
  995.                         ENDR
  996. MSAMEndNestedPB            RECORD 0
  997. qLink                     ds.l    1                ; offset: $0 (0)
  998. reservedH1                 ds.l    1                ; offset: $4 (4)
  999. reservedH2                 ds.l    1                ; offset: $8 (8)
  1000. ioCompletion             ds.l    1                ; offset: $C (12)
  1001. ioResult                 ds.w    1                ; offset: $10 (16)
  1002. saveA5                     ds.l    1                ; offset: $12 (18)
  1003. reqCode                     ds.w    1                ; offset: $16 (22)
  1004. mailMsgRef                 ds.l    1                ; offset: $18 (24)
  1005. sizeof                     EQU *                    ; size:   $1C (28)
  1006.                         ENDR
  1007. MSAMSubmitPB            RECORD 0
  1008. qLink                     ds.l    1                ; offset: $0 (0)
  1009. reservedH1                 ds.l    1                ; offset: $4 (4)
  1010. reservedH2                 ds.l    1                ; offset: $8 (8)
  1011. ioCompletion             ds.l    1                ; offset: $C (12)
  1012. ioResult                 ds.w    1                ; offset: $10 (16)
  1013. saveA5                     ds.l    1                ; offset: $12 (18)
  1014. reqCode                     ds.w    1                ; offset: $16 (22)
  1015. mailMsgRef                 ds.l    1                ; offset: $18 (24)
  1016. submitFlag                 ds.b    1                ; offset: $1C (28)
  1017. padByte                     ds.b    1                ; offset: $1D (29)
  1018. msgID                     ds        MailLetterID    ; offset: $1E (30)
  1019. sizeof                     EQU *                    ; size:   $2E (46)
  1020.                         ENDR
  1021. MSAMPutMsgHeaderPB        RECORD 0
  1022. qLink                     ds.l    1                ; offset: $0 (0)
  1023. reservedH1                 ds.l    1                ; offset: $4 (4)
  1024. reservedH2                 ds.l    1                ; offset: $8 (8)
  1025. ioCompletion             ds.l    1                ; offset: $C (12)
  1026. ioResult                 ds.w    1                ; offset: $10 (16)
  1027. saveA5                     ds.l    1                ; offset: $12 (18)
  1028. reqCode                     ds.w    1                ; offset: $16 (22)
  1029. mailMsgRef                 ds.l    1                ; offset: $18 (24)
  1030. replyQueue                 ds.l    1                ; offset: $1C (28)
  1031. sender                     ds.l    1                ; offset: $20 (32)
  1032. deliveryNotification     ds.b    1                ; offset: $24 (36)
  1033. priority                 ds.b    1                ; offset: $25 (37)
  1034. sizeof                     EQU *                    ; size:   $26 (38)
  1035.                         ENDR
  1036. MSAMPutAttributePB        RECORD 0
  1037. qLink                     ds.l    1                ; offset: $0 (0)
  1038. reservedH1                 ds.l    1                ; offset: $4 (4)
  1039. reservedH2                 ds.l    1                ; offset: $8 (8)
  1040. ioCompletion             ds.l    1                ; offset: $C (12)
  1041. ioResult                 ds.w    1                ; offset: $10 (16)
  1042. saveA5                     ds.l    1                ; offset: $12 (18)
  1043. reqCode                     ds.w    1                ; offset: $16 (22)
  1044. mailMsgRef                 ds.l    1                ; offset: $18 (24)
  1045. attrID                     ds.w    1                ; offset: $1C (28)        ;  kMailIndicationsBit thru kMailSubjectBit 
  1046. buffer                     ds        MailBuffer        ; offset: $1E (30)
  1047. sizeof                     EQU *                    ; size:   $2A (42)
  1048.                         ENDR
  1049. MSAMPutRecipientPB        RECORD 0
  1050. qLink                     ds.l    1                ; offset: $0 (0)
  1051. reservedH1                 ds.l    1                ; offset: $4 (4)
  1052. reservedH2                 ds.l    1                ; offset: $8 (8)
  1053. ioCompletion             ds.l    1                ; offset: $C (12)
  1054. ioResult                 ds.w    1                ; offset: $10 (16)
  1055. saveA5                     ds.l    1                ; offset: $12 (18)
  1056. reqCode                     ds.w    1                ; offset: $16 (22)
  1057. mailMsgRef                 ds.l    1                ; offset: $18 (24)
  1058. attrID                     ds.w    1                ; offset: $1C (28)        ;  kMailFromBit thru kMailBccBit 
  1059. recipient                 ds.l    1                ; offset: $1E (30)
  1060. responsible                 ds.b    1                ; offset: $22 (34)        ;  valid for server and message msams only 
  1061. filler1                     ds.b    1                ; offset: $23 (35)
  1062. sizeof                     EQU *                    ; size:   $24 (36)
  1063.                         ENDR
  1064. MSAMPutContentPB        RECORD 0
  1065. qLink                     ds.l    1                ; offset: $0 (0)
  1066. reservedH1                 ds.l    1                ; offset: $4 (4)
  1067. reservedH2                 ds.l    1                ; offset: $8 (8)
  1068. ioCompletion             ds.l    1                ; offset: $C (12)
  1069. ioResult                 ds.w    1                ; offset: $10 (16)
  1070. saveA5                     ds.l    1                ; offset: $12 (18)
  1071. reqCode                     ds.w    1                ; offset: $16 (22)
  1072. mailMsgRef                 ds.l    1                ; offset: $18 (24)
  1073. segmentType                 ds.w    1                ; offset: $1C (28)
  1074. append                     ds.b    1                ; offset: $1E (30)
  1075. padByte                     ds.b    1                ; offset: $1F (31)
  1076. buffer                     ds        MailBuffer        ; offset: $20 (32)
  1077. textScrap                 ds.l    1                ; offset: $2C (44)
  1078. startNewScript             ds.b    1                ; offset: $30 (48)
  1079. filler1                     ds.b    1                ; offset: $31 (49)
  1080. script                     ds.w    1                ; offset: $32 (50)        ;  valid only if startNewScript is true 
  1081. sizeof                     EQU *                    ; size:   $34 (52)
  1082.                         ENDR
  1083. MSAMPutEnclosurePB        RECORD 0
  1084. qLink                     ds.l    1                ; offset: $0 (0)
  1085. reservedH1                 ds.l    1                ; offset: $4 (4)
  1086. reservedH2                 ds.l    1                ; offset: $8 (8)
  1087. ioCompletion             ds.l    1                ; offset: $C (12)
  1088. ioResult                 ds.w    1                ; offset: $10 (16)
  1089. saveA5                     ds.l    1                ; offset: $12 (18)
  1090. reqCode                     ds.w    1                ; offset: $16 (22)
  1091. mailMsgRef                 ds.l    1                ; offset: $18 (24)
  1092. contentEnclosure         ds.b    1                ; offset: $1C (28)
  1093. padByte                     ds.b    1                ; offset: $1D (29)
  1094. hfs                         ds.b    1                ; offset: $1E (30)        ;  true => in file system, false => in memory 
  1095. append                     ds.b    1                ; offset: $1F (31)
  1096. buffer                     ds        MailBuffer        ; offset: $20 (32)        ;  Unused if hfs == true 
  1097. enclosure                 ds        FSSpec            ; offset: $2C (44)
  1098. addlInfo                 ds        MailEnclosureInfo ; offset: $72 (114)
  1099. sizeof                     EQU *                    ; size:   $82 (130)
  1100.                         ENDR
  1101. MSAMPutBlockPB            RECORD 0
  1102. qLink                     ds.l    1                ; offset: $0 (0)
  1103. reservedH1                 ds.l    1                ; offset: $4 (4)
  1104. reservedH2                 ds.l    1                ; offset: $8 (8)
  1105. ioCompletion             ds.l    1                ; offset: $C (12)
  1106. ioResult                 ds.w    1                ; offset: $10 (16)
  1107. saveA5                     ds.l    1                ; offset: $12 (18)
  1108. reqCode                     ds.w    1                ; offset: $16 (22)
  1109. mailMsgRef                 ds.l    1                ; offset: $18 (24)
  1110. refCon                     ds.l    1                ; offset: $1C (28)        ;  for messages only 
  1111. blockType                 ds        OCECreatorType ; offset: $20 (32)
  1112. append                     ds.b    1                ; offset: $28 (40)
  1113. filler1                     ds.b    1                ; offset: $29 (41)
  1114. buffer                     ds        MailBuffer        ; offset: $2A (42)
  1115. mode                     ds.w    1                ; offset: $36 (54)        ;  if blockType is kMailTunnelLtrType or kMailHopInfoType  mode is assumed to be kMailFromMark 
  1116. offset                     ds.l    1                ; offset: $38 (56)
  1117. sizeof                     EQU *                    ; size:   $3C (60)
  1118.                         ENDR
  1119. ; ***************************************************************************************
  1120. MSAMCreateReportPB        RECORD 0
  1121. qLink                     ds.l    1                ; offset: $0 (0)
  1122. reservedH1                 ds.l    1                ; offset: $4 (4)
  1123. reservedH2                 ds.l    1                ; offset: $8 (8)
  1124. ioCompletion             ds.l    1                ; offset: $C (12)
  1125. ioResult                 ds.w    1                ; offset: $10 (16)
  1126. saveA5                     ds.l    1                ; offset: $12 (18)
  1127. reqCode                     ds.w    1                ; offset: $16 (22)
  1128. queueRef                 ds.l    1                ; offset: $18 (24)        ;  to distinguish personal and server MSAMs 
  1129. mailMsgRef                 ds.l    1                ; offset: $1C (28)
  1130. msgID                     ds        MailLetterID    ; offset: $20 (32)        ;  kMailLetterIDBit of letter being reported upon 
  1131. sender                     ds.l    1                ; offset: $30 (48)        ;  sender of the letter you are creating report on 
  1132. sizeof                     EQU *                    ; size:   $34 (52)
  1133.                         ENDR
  1134. MSAMPutRecipientReportPB RECORD 0
  1135. qLink                     ds.l    1                ; offset: $0 (0)
  1136. reservedH1                 ds.l    1                ; offset: $4 (4)
  1137. reservedH2                 ds.l    1                ; offset: $8 (8)
  1138. ioCompletion             ds.l    1                ; offset: $C (12)
  1139. ioResult                 ds.w    1                ; offset: $10 (16)
  1140. saveA5                     ds.l    1                ; offset: $12 (18)
  1141. reqCode                     ds.w    1                ; offset: $16 (22)
  1142. mailMsgRef                 ds.l    1                ; offset: $18 (24)
  1143. recipientIndex             ds.w    1                ; offset: $1C (28)        ;  recipient index in the original letter 
  1144. result                     ds.w    1                ; offset: $1E (30)        ;  result of sending the recipient 
  1145. sizeof                     EQU *                    ; size:   $20 (32)
  1146.                         ENDR
  1147. ; ***************************************************************************************
  1148. MailWakeupPMSAMPB        RECORD 0
  1149. qLink                     ds.l    1                ; offset: $0 (0)
  1150. reservedH1                 ds.l    1                ; offset: $4 (4)
  1151. reservedH2                 ds.l    1                ; offset: $8 (8)
  1152. ioCompletion             ds.l    1                ; offset: $C (12)
  1153. ioResult                 ds.w    1                ; offset: $10 (16)
  1154. saveA5                     ds.l    1                ; offset: $12 (18)
  1155. reqCode                     ds.w    1                ; offset: $16 (22)
  1156. pmsamCID                 ds        CreationID        ; offset: $18 (24)
  1157. mailSlotID                 ds.w    1                ; offset: $20 (32)
  1158. sizeof                     EQU *                    ; size:   $22 (34)
  1159.                         ENDR
  1160. MailCreateMailSlotPB    RECORD 0
  1161. qLink                     ds.l    1                ; offset: $0 (0)
  1162. reservedH1                 ds.l    1                ; offset: $4 (4)
  1163. reservedH2                 ds.l    1                ; offset: $8 (8)
  1164. ioCompletion             ds.l    1                ; offset: $C (12)
  1165. ioResult                 ds.w    1                ; offset: $10 (16)
  1166. saveA5                     ds.l    1                ; offset: $12 (18)
  1167. reqCode                     ds.w    1                ; offset: $16 (22)
  1168. mailboxRef                 ds.l    1                ; offset: $18 (24)
  1169. timeout                     ds.l    1                ; offset: $1C (28)
  1170. pmsamCID                 ds        CreationID        ; offset: $20 (32)
  1171. smca                     ds        SMCA            ; offset: $28 (40)
  1172. sizeof                     EQU *                    ; size:   $38 (56)
  1173.                         ENDR
  1174. MailModifyMailSlotPB    RECORD 0
  1175. qLink                     ds.l    1                ; offset: $0 (0)
  1176. reservedH1                 ds.l    1                ; offset: $4 (4)
  1177. reservedH2                 ds.l    1                ; offset: $8 (8)
  1178. ioCompletion             ds.l    1                ; offset: $C (12)
  1179. ioResult                 ds.w    1                ; offset: $10 (16)
  1180. saveA5                     ds.l    1                ; offset: $12 (18)
  1181. reqCode                     ds.w    1                ; offset: $16 (22)
  1182. mailboxRef                 ds.l    1                ; offset: $18 (24)
  1183. timeout                     ds.l    1                ; offset: $1C (28)
  1184. pmsamCID                 ds        CreationID        ; offset: $20 (32)
  1185. smca                     ds        SMCA            ; offset: $28 (40)
  1186. sizeof                     EQU *                    ; size:   $38 (56)
  1187.                         ENDR
  1188. MSAMParam                RECORD 0
  1189. qLink                     ds.l    1                ; offset: $0 (0)
  1190. reservedH1                 ds.l    1                ; offset: $4 (4)
  1191. reservedH2                 ds.l    1                ; offset: $8 (8)
  1192. ioCompletion             ds.l    1                ; offset: $C (12)
  1193. ioResult                 ds.w    1                ; offset: $10 (16)
  1194. saveA5                     ds.l    1                ; offset: $12 (18)
  1195. reqCode                     ds.w    1                ; offset: $16 (22)
  1196.                          ORG 0
  1197. pmsamGetMSAMRecord         ds        PMSAMGetMSAMRecordPB ; offset: $0 (0)
  1198.                          ORG 0
  1199. pmsamOpenQueues             ds        PMSAMOpenQueuesPB ; offset: $0 (0)
  1200.                          ORG 0
  1201. pmsamSetStatus             ds        PMSAMSetStatusPB ; offset: $0 (0)
  1202.                          ORG 0
  1203. pmsamLogError             ds        PMSAMLogErrorPB ; offset: $0 (0)
  1204.                          ORG 0
  1205. smsamSetup                 ds        SMSAMSetupPB    ; offset: $0 (0)
  1206.                          ORG 0
  1207. smsamStartup             ds        SMSAMStartupPB ; offset: $0 (0)
  1208.                          ORG 0
  1209. smsamShutdown             ds        SMSAMShutdownPB ; offset: $0 (0)
  1210.                          ORG 0
  1211. msamEnumerate             ds        MSAMEnumeratePB ; offset: $0 (0)
  1212.                          ORG 0
  1213. msamDelete                 ds        MSAMDeletePB    ; offset: $0 (0)
  1214.                          ORG 0
  1215. msamOpen                 ds        MSAMOpenPB        ; offset: $0 (0)
  1216.                          ORG 0
  1217. msamOpenNested             ds        MSAMOpenNestedPB ; offset: $0 (0)
  1218.                          ORG 0
  1219. msamClose                 ds        MSAMClosePB        ; offset: $0 (0)
  1220.                          ORG 0
  1221. msamGetMsgHeader         ds        MSAMGetMsgHeaderPB ; offset: $0 (0)
  1222.                          ORG 0
  1223. msamGetAttributes         ds        MSAMGetAttributesPB ; offset: $0 (0)
  1224.                          ORG 0
  1225. msamGetRecipients         ds        MSAMGetRecipientsPB ; offset: $0 (0)
  1226.                          ORG 0
  1227. msamGetContent             ds        MSAMGetContentPB ; offset: $0 (0)
  1228.                          ORG 0
  1229. msamGetEnclosure         ds        MSAMGetEnclosurePB ; offset: $0 (0)
  1230.                          ORG 0
  1231. msamEnumerateBlocks         ds        MSAMEnumerateBlocksPB ; offset: $0 (0)
  1232.                          ORG 0
  1233. msamGetBlock             ds        MSAMGetBlockPB ; offset: $0 (0)
  1234.                          ORG 0
  1235. msamMarkRecipients         ds        MSAMMarkRecipientsPB ; offset: $0 (0)
  1236.                          ORG 0
  1237. msamnMarkRecipients         ds        MSAMnMarkRecipientsPB ; offset: $0 (0)
  1238.                          ORG 0
  1239. msamCreate                 ds        MSAMCreatePB    ; offset: $0 (0)
  1240.                          ORG 0
  1241. msamBeginNested             ds        MSAMBeginNestedPB ; offset: $0 (0)
  1242.                          ORG 0
  1243. msamEndNested             ds        MSAMEndNestedPB ; offset: $0 (0)
  1244.                          ORG 0
  1245. msamSubmit                 ds        MSAMSubmitPB    ; offset: $0 (0)
  1246.                          ORG 0
  1247. msamPutMsgHeader         ds        MSAMPutMsgHeaderPB ; offset: $0 (0)
  1248.                          ORG 0
  1249. msamPutAttribute         ds        MSAMPutAttributePB ; offset: $0 (0)
  1250.                          ORG 0
  1251. msamPutRecipient         ds        MSAMPutRecipientPB ; offset: $0 (0)
  1252.                          ORG 0
  1253. msamPutContent             ds        MSAMPutContentPB ; offset: $0 (0)
  1254.                          ORG 0
  1255. msamPutEnclosure         ds        MSAMPutEnclosurePB ; offset: $0 (0)        ;  this field is SYSTEM8_DEPRECATED
  1256.                          ORG 0
  1257. msamPutBlock             ds        MSAMPutBlockPB ; offset: $0 (0)
  1258.                          ORG 0
  1259. msamCreateReport         ds        MSAMCreateReportPB ; offset: $0 (0)        ;  Reports and Error Handling Calls 
  1260.                          ORG 0
  1261. msamPutRecipientReport     ds        MSAMPutRecipientReportPB ; offset: $0 (0)
  1262.                          ORG 0
  1263. pmsamCreateMsgSummary     ds        PMSAMCreateMsgSummaryPB ; offset: $0 (0)
  1264.                          ORG 0
  1265. pmsamPutMsgSummary         ds        PMSAMPutMsgSummaryPB ; offset: $0 (0)
  1266.                          ORG 0
  1267. pmsamGetMsgSummary         ds        PMSAMGetMsgSummaryPB ; offset: $0 (0)
  1268.                          ORG 0
  1269. wakeupPMSAM                 ds        MailWakeupPMSAMPB ; offset: $0 (0)
  1270.                          ORG 0
  1271. createMailSlot             ds        MailCreateMailSlotPB ; offset: $0 (0)
  1272.                          ORG 0
  1273. modifyMailSlot             ds        MailModifyMailSlotPB ; offset: $0 (0)
  1274.                          ORG 130
  1275. sizeof                     EQU *                    ; size:   $82 (130)
  1276.                         ENDR
  1277. ;  ASYNCHRONOUS ONLY, client must call WaitNextEvent 
  1278. ;
  1279. ; pascal OSErr MailCreateMailSlot(MSAMParam *paramBlock)
  1280. ;
  1281.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  1282.         Macro
  1283.         _MailCreateMailSlot
  1284.             moveq               #1,D0
  1285.             move.b              D0,-(sp)
  1286.             move.w              #$052B,-(sp)
  1287.             dc.w                $AA5E
  1288.         EndM
  1289.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1290.         IMPORT_CFM_FUNCTION MailCreateMailSlot
  1291.     ENDIF
  1292.  
  1293. ;  ASYNCHRONOUS ONLY, client must call WaitNextEvent 
  1294. ;
  1295. ; pascal OSErr MailModifyMailSlot(MSAMParam *paramBlock)
  1296. ;
  1297.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  1298.         Macro
  1299.         _MailModifyMailSlot
  1300.             moveq               #1,D0
  1301.             move.b              D0,-(sp)
  1302.             move.w              #$052C,-(sp)
  1303.             dc.w                $AA5E
  1304.         EndM
  1305.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1306.         IMPORT_CFM_FUNCTION MailModifyMailSlot
  1307.     ENDIF
  1308.  
  1309. ;  ASYNCHRONOUS ONLY, client must call WaitNextEvent 
  1310. ;
  1311. ; pascal OSErr MailWakeupPMSAM(MSAMParam *paramBlock)
  1312. ;
  1313.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  1314.         Macro
  1315.         _MailWakeupPMSAM
  1316.             moveq               #1,D0
  1317.             move.b              D0,-(sp)
  1318.             move.w              #$0507,-(sp)
  1319.             dc.w                $AA5E
  1320.         EndM
  1321.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1322.         IMPORT_CFM_FUNCTION MailWakeupPMSAM
  1323.     ENDIF
  1324.  
  1325. ;  Personal MSAM Glue Routines 
  1326. ;
  1327. ; pascal OSErr PMSAMOpenQueues(MSAMParam *paramBlock)
  1328. ;
  1329.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  1330.         Macro
  1331.         _PMSAMOpenQueues
  1332.             moveq               #0,D0
  1333.             move.b              D0,-(sp)
  1334.             move.w              #$0500,-(sp)
  1335.             dc.w                $AA5E
  1336.         EndM
  1337.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1338.         IMPORT_CFM_FUNCTION PMSAMOpenQueues
  1339.     ENDIF
  1340.  
  1341. ;
  1342. ; pascal OSErr PMSAMSetStatus(MSAMParam *paramBlock, Boolean asyncFlag)
  1343. ;
  1344.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  1345.         Macro
  1346.         _PMSAMSetStatus
  1347.             move.w              #$0527,-(sp)
  1348.             dc.w                $AA5E
  1349.         EndM
  1350.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1351.         IMPORT_CFM_FUNCTION PMSAMSetStatus
  1352.     ENDIF
  1353.  
  1354. ;  SYNC ONLY 
  1355. ;
  1356. ; pascal OSErr PMSAMGetMSAMRecord(MSAMParam *paramBlock)
  1357. ;
  1358.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  1359.         Macro
  1360.         _PMSAMGetMSAMRecord
  1361.             moveq               #0,D0
  1362.             move.b              D0,-(sp)
  1363.             move.w              #$0506,-(sp)
  1364.             dc.w                $AA5E
  1365.         EndM
  1366.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1367.         IMPORT_CFM_FUNCTION PMSAMGetMSAMRecord
  1368.     ENDIF
  1369.  
  1370. ;  Server MSAM Glue Routines 
  1371. ;  SYNC ONLY 
  1372. ;
  1373. ; pascal OSErr SMSAMSetup(MSAMParam *paramBlock)
  1374. ;
  1375.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  1376.         Macro
  1377.         _SMSAMSetup
  1378.             moveq               #0,D0
  1379.             move.b              D0,-(sp)
  1380.             move.w              #$0523,-(sp)
  1381.             dc.w                $AA5E
  1382.         EndM
  1383.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1384.         IMPORT_CFM_FUNCTION SMSAMSetup
  1385.     ENDIF
  1386.  
  1387. ;  SYNC ONLY 
  1388. ;
  1389. ; pascal OSErr SMSAMStartup(MSAMParam *paramBlock)
  1390. ;
  1391.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  1392.         Macro
  1393.         _SMSAMStartup
  1394.             moveq               #0,D0
  1395.             move.b              D0,-(sp)
  1396.             move.w              #$0501,-(sp)
  1397.             dc.w                $AA5E
  1398.         EndM
  1399.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1400.         IMPORT_CFM_FUNCTION SMSAMStartup
  1401.     ENDIF
  1402.  
  1403. ;
  1404. ; pascal OSErr SMSAMShutdown(MSAMParam *paramBlock, Boolean asyncFlag)
  1405. ;
  1406.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  1407.         Macro
  1408.         _SMSAMShutdown
  1409.             move.w              #$0502,-(sp)
  1410.             dc.w                $AA5E
  1411.         EndM
  1412.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1413.         IMPORT_CFM_FUNCTION SMSAMShutdown
  1414.     ENDIF
  1415.  
  1416. ;  Get Interface Glue Routines 
  1417. ;
  1418. ; pascal OSErr MSAMEnumerate(MSAMParam *paramBlock, Boolean asyncFlag)
  1419. ;
  1420.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  1421.         Macro
  1422.         _MSAMEnumerate
  1423.             move.w              #$0503,-(sp)
  1424.             dc.w                $AA5E
  1425.         EndM
  1426.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1427.         IMPORT_CFM_FUNCTION MSAMEnumerate
  1428.     ENDIF
  1429.  
  1430. ;
  1431. ; pascal OSErr MSAMDelete(MSAMParam *paramBlock, Boolean asyncFlag)
  1432. ;
  1433.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  1434.         Macro
  1435.         _MSAMDelete
  1436.             move.w              #$0504,-(sp)
  1437.             dc.w                $AA5E
  1438.         EndM
  1439.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1440.         IMPORT_CFM_FUNCTION MSAMDelete
  1441.     ENDIF
  1442.  
  1443. ;
  1444. ; pascal OSErr MSAMMarkRecipients(MSAMParam *paramBlock, Boolean asyncFlag)
  1445. ;
  1446.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  1447.         Macro
  1448.         _MSAMMarkRecipients
  1449.             move.w              #$0505,-(sp)
  1450.             dc.w                $AA5E
  1451.         EndM
  1452.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1453.         IMPORT_CFM_FUNCTION MSAMMarkRecipients
  1454.     ENDIF
  1455.  
  1456. ;
  1457. ; pascal OSErr MSAMnMarkRecipients(MSAMParam *paramBlock, Boolean asyncFlag)
  1458. ;
  1459.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  1460.         Macro
  1461.         _MSAMnMarkRecipients
  1462.             move.w              #$0512,-(sp)
  1463.             dc.w                $AA5E
  1464.         EndM
  1465.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1466.         IMPORT_CFM_FUNCTION MSAMnMarkRecipients
  1467.     ENDIF
  1468.  
  1469. ;
  1470. ; pascal OSErr MSAMOpen(MSAMParam *paramBlock, Boolean asyncFlag)
  1471. ;
  1472.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  1473.         Macro
  1474.         _MSAMOpen
  1475.             move.w              #$0508,-(sp)
  1476.             dc.w                $AA5E
  1477.         EndM
  1478.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1479.         IMPORT_CFM_FUNCTION MSAMOpen
  1480.     ENDIF
  1481.  
  1482. ;
  1483. ; pascal OSErr MSAMOpenNested(MSAMParam *paramBlock, Boolean asyncFlag)
  1484. ;
  1485.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  1486.         Macro
  1487.         _MSAMOpenNested
  1488.             move.w              #$0509,-(sp)
  1489.             dc.w                $AA5E
  1490.         EndM
  1491.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1492.         IMPORT_CFM_FUNCTION MSAMOpenNested
  1493.     ENDIF
  1494.  
  1495. ;
  1496. ; pascal OSErr MSAMClose(MSAMParam *paramBlock, Boolean asyncFlag)
  1497. ;
  1498.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  1499.         Macro
  1500.         _MSAMClose
  1501.             move.w              #$050A,-(sp)
  1502.             dc.w                $AA5E
  1503.         EndM
  1504.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1505.         IMPORT_CFM_FUNCTION MSAMClose
  1506.     ENDIF
  1507.  
  1508. ;
  1509. ; pascal OSErr MSAMGetRecipients(MSAMParam *paramBlock, Boolean asyncFlag)
  1510. ;
  1511.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  1512.         Macro
  1513.         _MSAMGetRecipients
  1514.             move.w              #$050C,-(sp)
  1515.             dc.w                $AA5E
  1516.         EndM
  1517.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1518.         IMPORT_CFM_FUNCTION MSAMGetRecipients
  1519.     ENDIF
  1520.  
  1521. ;
  1522. ; pascal OSErr MSAMGetAttributes(MSAMParam *paramBlock, Boolean asyncFlag)
  1523. ;
  1524.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  1525.         Macro
  1526.         _MSAMGetAttributes
  1527.             move.w              #$050B,-(sp)
  1528.             dc.w                $AA5E
  1529.         EndM
  1530.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1531.         IMPORT_CFM_FUNCTION MSAMGetAttributes
  1532.     ENDIF
  1533.  
  1534. ;
  1535. ; pascal OSErr MSAMGetContent(MSAMParam *paramBlock, Boolean asyncFlag)
  1536. ;
  1537.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  1538.         Macro
  1539.         _MSAMGetContent
  1540.             move.w              #$050D,-(sp)
  1541.             dc.w                $AA5E
  1542.         EndM
  1543.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1544.         IMPORT_CFM_FUNCTION MSAMGetContent
  1545.     ENDIF
  1546.  
  1547. ;
  1548. ; pascal OSErr MSAMGetEnclosure(MSAMParam *paramBlock, Boolean asyncFlag)
  1549. ;
  1550.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  1551.         Macro
  1552.         _MSAMGetEnclosure
  1553.             move.w              #$050E,-(sp)
  1554.             dc.w                $AA5E
  1555.         EndM
  1556.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1557.         IMPORT_CFM_FUNCTION MSAMGetEnclosure
  1558.     ENDIF
  1559.  
  1560. ;
  1561. ; pascal OSErr MSAMEnumerateBlocks(MSAMParam *paramBlock, Boolean asyncFlag)
  1562. ;
  1563.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  1564.         Macro
  1565.         _MSAMEnumerateBlocks
  1566.             move.w              #$050F,-(sp)
  1567.             dc.w                $AA5E
  1568.         EndM
  1569.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1570.         IMPORT_CFM_FUNCTION MSAMEnumerateBlocks
  1571.     ENDIF
  1572.  
  1573. ;
  1574. ; pascal OSErr MSAMGetBlock(MSAMParam *paramBlock, Boolean asyncFlag)
  1575. ;
  1576.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  1577.         Macro
  1578.         _MSAMGetBlock
  1579.             move.w              #$0510,-(sp)
  1580.             dc.w                $AA5E
  1581.         EndM
  1582.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1583.         IMPORT_CFM_FUNCTION MSAMGetBlock
  1584.     ENDIF
  1585.  
  1586. ;
  1587. ; pascal OSErr MSAMGetMsgHeader(MSAMParam *paramBlock, Boolean asyncFlag)
  1588. ;
  1589.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  1590.         Macro
  1591.         _MSAMGetMsgHeader
  1592.             move.w              #$0511,-(sp)
  1593.             dc.w                $AA5E
  1594.         EndM
  1595.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1596.         IMPORT_CFM_FUNCTION MSAMGetMsgHeader
  1597.     ENDIF
  1598.  
  1599. ;  Put Interface Glue Routines 
  1600. ;
  1601. ; pascal OSErr MSAMCreate(MSAMParam *paramBlock, Boolean asyncFlag)
  1602. ;
  1603.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  1604.         Macro
  1605.         _MSAMCreate
  1606.             move.w              #$0514,-(sp)
  1607.             dc.w                $AA5E
  1608.         EndM
  1609.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1610.         IMPORT_CFM_FUNCTION MSAMCreate
  1611.     ENDIF
  1612.  
  1613. ;
  1614. ; pascal OSErr MSAMBeginNested(MSAMParam *paramBlock, Boolean asyncFlag)
  1615. ;
  1616.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  1617.         Macro
  1618.         _MSAMBeginNested
  1619.             move.w              #$0515,-(sp)
  1620.             dc.w                $AA5E
  1621.         EndM
  1622.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1623.         IMPORT_CFM_FUNCTION MSAMBeginNested
  1624.     ENDIF
  1625.  
  1626. ;
  1627. ; pascal OSErr MSAMEndNested(MSAMParam *paramBlock)
  1628. ;
  1629.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  1630.         Macro
  1631.         _MSAMEndNested
  1632.             moveq               #0,D0
  1633.             move.b              D0,-(sp)
  1634.             move.w              #$0516,-(sp)
  1635.             dc.w                $AA5E
  1636.         EndM
  1637.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1638.         IMPORT_CFM_FUNCTION MSAMEndNested
  1639.     ENDIF
  1640.  
  1641. ;   SYNCHRONOUS ONLY 
  1642. ;
  1643. ; pascal OSErr MSAMSubmit(MSAMParam *paramBlock)
  1644. ;
  1645.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  1646.         Macro
  1647.         _MSAMSubmit
  1648.             moveq               #0,D0
  1649.             move.b              D0,-(sp)
  1650.             move.w              #$0517,-(sp)
  1651.             dc.w                $AA5E
  1652.         EndM
  1653.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1654.         IMPORT_CFM_FUNCTION MSAMSubmit
  1655.     ENDIF
  1656.  
  1657. ;
  1658. ; pascal OSErr MSAMPutAttribute(MSAMParam *paramBlock, Boolean asyncFlag)
  1659. ;
  1660.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  1661.         Macro
  1662.         _MSAMPutAttribute
  1663.             move.w              #$0518,-(sp)
  1664.             dc.w                $AA5E
  1665.         EndM
  1666.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1667.         IMPORT_CFM_FUNCTION MSAMPutAttribute
  1668.     ENDIF
  1669.  
  1670. ;
  1671. ; pascal OSErr MSAMPutRecipient(MSAMParam *paramBlock, Boolean asyncFlag)
  1672. ;
  1673.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  1674.         Macro
  1675.         _MSAMPutRecipient
  1676.             move.w              #$0519,-(sp)
  1677.             dc.w                $AA5E
  1678.         EndM
  1679.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1680.         IMPORT_CFM_FUNCTION MSAMPutRecipient
  1681.     ENDIF
  1682.  
  1683. ;
  1684. ; pascal OSErr MSAMPutContent(MSAMParam *paramBlock, Boolean asyncFlag)
  1685. ;
  1686.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  1687.         Macro
  1688.         _MSAMPutContent
  1689.             move.w              #$051A,-(sp)
  1690.             dc.w                $AA5E
  1691.         EndM
  1692.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1693.         IMPORT_CFM_FUNCTION MSAMPutContent
  1694.     ENDIF
  1695.  
  1696. ;   SYNCHRONOUS ONLY 
  1697. ;
  1698. ; pascal OSErr MSAMPutEnclosure(MSAMParam *paramBlock)
  1699. ;
  1700.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  1701.         Macro
  1702.         _MSAMPutEnclosure
  1703.             moveq               #0,D0
  1704.             move.b              D0,-(sp)
  1705.             move.w              #$051B,-(sp)
  1706.             dc.w                $AA5E
  1707.         EndM
  1708.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1709.         IMPORT_CFM_FUNCTION MSAMPutEnclosure
  1710.     ENDIF
  1711.  
  1712. ;
  1713. ; pascal OSErr MSAMPutBlock(MSAMParam *paramBlock, Boolean asyncFlag)
  1714. ;
  1715.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  1716.         Macro
  1717.         _MSAMPutBlock
  1718.             move.w              #$051C,-(sp)
  1719.             dc.w                $AA5E
  1720.         EndM
  1721.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1722.         IMPORT_CFM_FUNCTION MSAMPutBlock
  1723.     ENDIF
  1724.  
  1725. ;
  1726. ; pascal OSErr MSAMPutMsgHeader(MSAMParam *paramBlock, Boolean asyncFlag)
  1727. ;
  1728.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  1729.         Macro
  1730.         _MSAMPutMsgHeader
  1731.             move.w              #$051D,-(sp)
  1732.             dc.w                $AA5E
  1733.         EndM
  1734.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1735.         IMPORT_CFM_FUNCTION MSAMPutMsgHeader
  1736.     ENDIF
  1737.  
  1738. ;  Reports and Error Handling Glue Routines 
  1739. ;
  1740. ; pascal OSErr MSAMCreateReport(MSAMParam *paramBlock, Boolean asyncFlag)
  1741. ;
  1742.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  1743.         Macro
  1744.         _MSAMCreateReport
  1745.             move.w              #$051F,-(sp)
  1746.             dc.w                $AA5E
  1747.         EndM
  1748.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1749.         IMPORT_CFM_FUNCTION MSAMCreateReport
  1750.     ENDIF
  1751.  
  1752. ;
  1753. ; pascal OSErr MSAMPutRecipientReport(MSAMParam *paramBlock, Boolean asyncFlag)
  1754. ;
  1755.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  1756.         Macro
  1757.         _MSAMPutRecipientReport
  1758.             move.w              #$0520,-(sp)
  1759.             dc.w                $AA5E
  1760.         EndM
  1761.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1762.         IMPORT_CFM_FUNCTION MSAMPutRecipientReport
  1763.     ENDIF
  1764.  
  1765. ;
  1766. ; pascal OSErr PMSAMLogError(MSAMParam *paramBlock)
  1767. ;
  1768.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  1769.         Macro
  1770.         _PMSAMLogError
  1771.             moveq               #0,D0
  1772.             move.b              D0,-(sp)
  1773.             move.w              #$0521,-(sp)
  1774.             dc.w                $AA5E
  1775.         EndM
  1776.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1777.         IMPORT_CFM_FUNCTION PMSAMLogError
  1778.     ENDIF
  1779.  
  1780. ;  MsgSummary Glue Routines 
  1781. ;
  1782. ; pascal OSErr PMSAMCreateMsgSummary(MSAMParam *paramBlock, Boolean asyncFlag)
  1783. ;
  1784.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  1785.         Macro
  1786.         _PMSAMCreateMsgSummary
  1787.             move.w              #$0522,-(sp)
  1788.             dc.w                $AA5E
  1789.         EndM
  1790.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1791.         IMPORT_CFM_FUNCTION PMSAMCreateMsgSummary
  1792.     ENDIF
  1793.  
  1794. ;
  1795. ; pascal OSErr PMSAMPutMsgSummary(MSAMParam *paramBlock, Boolean asyncFlag)
  1796. ;
  1797.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  1798.         Macro
  1799.         _PMSAMPutMsgSummary
  1800.             move.w              #$0525,-(sp)
  1801.             dc.w                $AA5E
  1802.         EndM
  1803.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1804.         IMPORT_CFM_FUNCTION PMSAMPutMsgSummary
  1805.     ENDIF
  1806.  
  1807. ;
  1808. ; pascal OSErr PMSAMGetMsgSummary(MSAMParam *paramBlock, Boolean asyncFlag)
  1809. ;
  1810.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  1811.         Macro
  1812.         _PMSAMGetMsgSummary
  1813.             move.w              #$0526,-(sp)
  1814.             dc.w                $AA5E
  1815.         EndM
  1816.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1817.         IMPORT_CFM_FUNCTION PMSAMGetMsgSummary
  1818.     ENDIF
  1819.  
  1820.  
  1821.     ENDIF ; __OCEMAIL__ 
  1822.  
  1823.